#ifndef IPERSISTENT_DOCUMENT_H
#define IPERSISTENT_DOCUMENT_H

class QString;
class QUrl;
class QByteArray;

namespace core
{
class IPersistenceAssistant;
class IStorage;
class MimeType;

class IPersistentDocument
{
public:
    virtual QUrl url() const = 0;
    virtual MimeType mimeType() const = 0;
    virtual QString name() const = 0;

    virtual const IStorage* storage() const = 0;

    virtual const QByteArray* serializedData() const = 0;

    virtual void updateData(const QByteArray& data) = 0;

    virtual ~IPersistentDocument() {}
};

} // namespace core

#endif
